home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / util / pack / xpk_Source.lha / xpk_Source / Assembler / testFilePack.a
Text File  |  1998-11-09  |  2KB  |  105 lines

  1. * Programmheader
  2. *
  3. *    Name:        testFilePack
  4. *    Author:        SDI
  5. *    Distribution:    Freeware
  6. *    Description:    easy file to file packer
  7. *    Compileropts:    -
  8. *    Linkeropts:    -l xpkmaster amiga
  9. *
  10. * 1.0   06.01.97 : wrote to find the read bit error
  11. * 1.1   28.11.97 : moved chunk-hook into include file
  12. * 1.2   25.10.98 : made an assembler version (340 bytes)
  13.  
  14.     INCLUDE    "AINCLUDE:IncDirs.i"
  15.     INCLUDE    "lvo.i"
  16.     INCLUDE    "dos/dos.i"
  17.     INCLUDE "dos/dosextens.i"
  18.     INCLUDE "xpk/xpk.i"
  19.  
  20.     LEA.L    -12(A7),A7
  21.     MOVE.L    A7,A2            * A2 holds args array
  22.     LEA.L    User(PC),A3        * set default mode to USER
  23.     MOVE.L    A3,8(A2)
  24.  
  25.     MOVEQ    #RETURN_FAIL,D4        * return value
  26.     MOVE.L    4.W,A5            * A5 is SysBase
  27.     MOVE.L    A5,A6
  28.  
  29.     * handle WB start
  30.     SUBA.L    A1,A1
  31.     JSR    _LVOFindTask(A6)
  32.     MOVE.L    D0,A3
  33.     TST.L    pr_CLI(A3)
  34.     BNE.B    .iscli
  35.     LEA    pr_MsgPort(A3),A0
  36.     JSR    _LVOWaitPort(A6)
  37.     LEA    pr_MsgPort(A3),A0
  38.     JSR    _LVOGetMsg(A6)
  39.     MOVE.L    D0,A1
  40.     JSR    _LVOForbid(A6)
  41.     JSR    _LVOReplyMsg(A6)
  42.     BRA.W    end
  43.  
  44.     DC.B    'testFilePack 1.2 (25.10.1998) (Freeware) by SDI',0
  45.     EVEN
  46.  
  47. .iscli
  48.     MOVEQ    #37,D0
  49.     LEA    DosName(PC),A1
  50.     JSR    _LVOOpenLibrary(A6)
  51.     MOVE.L    D0,A4            * A4 is DOSBase
  52.     BEQ.B    end
  53.  
  54.     MOVEQ    #0,D3
  55.     MOVE.L    A2,D2
  56.     LEA.L    Param(PC),A3
  57.     MOVE.L    A3,D1
  58.     MOVE.L    A4,A6
  59.     JSR    _LVOReadArgs(A6)
  60.     MOVE.L    D0,D7            * D7 is rda
  61.     BEQ.B    freear
  62.  
  63.     MOVEQ    #4,D0
  64.     LEA    XpkName(PC),A1
  65.     MOVE.L    A5,A6
  66.     JSR    _LVOOpenLibrary(A6)
  67.     MOVE.L    D0,A6            * A6 is XpkBase
  68.     BEQ.B    freear
  69.  
  70.     CLR.L    -(A7)            * TAG_DONE
  71.     MOVE.L    8(A2),-(A7)        * PackMethod
  72.     MOVE.L    #XPK_PackMethod,-(A7)
  73.     MOVE.L    4(A2),-(A7)        * destination
  74.     MOVE.L    #XPK_OutName,-(A7)
  75.     MOVE.L    (A2),-(A7)        * source
  76.     MOVE.L    #XPK_InName,-(A7)
  77.     LEA    (A7),A0
  78.     JSR    _LVOXpkPack(A6)
  79.     LEA    7*4(A7),A7        * reset stack
  80.     MOVE.L    D0,D4
  81.     BEQ.B    clxpk
  82.  
  83.     SUB.L    A0,A0            * print the error
  84.     JSR    _LVOXpkPrintFault(A6)
  85.     MOVEQ    #RETURN_FAIL,D4
  86.  
  87. clxpk    MOVE.L    A6,A1
  88.     MOVE.L    A5,A6
  89.     JSR    _LVOCloseLibrary(A6)
  90. freear    MOVE.L    D7,D1
  91.     MOVE.L    A4,A6
  92.     JSR    _LVOFreeArgs(A6)
  93. cldos    MOVE.L    A4,A1
  94.     MOVE.L    A5,A6
  95.     JSR    _LVOCloseLibrary(A6)
  96. end    LEA    12(A7),A7
  97.     MOVE.L    D4,D0
  98.     RTS
  99.  
  100. Param    DC.B    'FROM/A,TO/A,METHOD',0
  101. User    DC.B    'USER',0
  102. DosName    DC.B    'dos.library',0
  103. XpkName    DC.B    'xpkmaster.library',0
  104.     END
  105.